//package com.jiegui.common.utils;
//
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.jiegui.common.enums.MqttBusiness;
//import com.jiegui.common.model.SyncCaseModel;
//import com.jiegui.common.model.SyncDeviceModel;
//import org.springframework.util.CollectionUtils;
//
//import java.math.BigDecimal;
//import java.util.List;
//
///**
// * @description: mqtt解码和转码工具
// * @author: wuqicheng
// * @time: 06/01/2022 1:55 下午
// */
//public class MqttUtils {
//
//    /**
//     * @Author wuqicheng
//     * @Description   发送消息转码
//     * @Date 2:19 下午 06/01/2022
//     * @param  model:
//     * @return java.lang.String
//     **/
//    public static String sendEncode(MqttCodeModel model) {
//
//        StringBuffer str = new StringBuffer();
//        //2位操作方式编码
//        str.append("getBag".equals(model.getActionType()) ? "01" : "02");
//        //15位硬件编码
//        str.append(model.getDeviceCode());
//        //2位仓格编码
//        str.append(model.getCaseNum());
//        //2位业务编码
//        str.append(model.getMqttBusiness().getSort());
//        //4位取件码
//        str.append(model.getCode());
//        //5位秒数
//        str.append( StringUtils.complementString(String.valueOf(model.getChargeTime().multiply(BigDecimal.valueOf(3600)).intValue()),5));
//        return str.toString();
//    }
//
//    /**
//     * @Author wuqicheng
//     * @Description   反馈消息解码
//     * @Date 2:19 下午 06/01/2022
//     * @param  code:
//     * @return com.jiegui.framework.mqtt.MqttCodeModel
//     **/
//    public static MqttCodeModel sendDecode(String code){
//        MqttCodeModel model=new MqttCodeModel();
//        model.setDeviceCode(code.substring(0,15));
//        model.setCaseNum(code.substring(15,17));
//        model.setMqttBusiness(MqttBusiness.values()[Integer.parseInt(code.substring(17,19))]);
//        model.setAttach(code.substring(19,code.length()));
//        return model;
//    }
//
//    /**
//     * @Author wuqicheng
//     * @Description   同不设备仓格信息解码
//     * @Date 10:57 AM 10/01/2022
//     * @param  code:
//     * @return com.alibaba.fastjson.JSONObject
//     **/
//    public static SyncDeviceModel syncDecode(String code){
//         JSONObject json= JSONObject.parseObject(code);
//        SyncDeviceModel device=new SyncDeviceModel();
//         //设备反馈信息
//        String deviceStr = json.getString("device");
//        String deviceCode= deviceStr.substring(0,15);//设备号
//        String deviceTemp=deviceStr.substring(15,18);//温度
//        String funStatus=deviceStr.substring(18,20);//风扇状态
//        funStatus=funStatus.equals("01")?"TRUE":"FALSE";
//
//        deviceTemp=deviceTemp.replaceFirst("^0*", "");
//        String deviceTotal=deviceStr.substring(20,deviceStr.length());//总电量
//        deviceTotal=deviceTotal.replaceFirst("^0*", "");
//        device.setCurrentTemp(new BigDecimal(deviceTemp));
//        device.setDeviceCode(deviceCode);
//        device.setElectricNum(new BigDecimal(deviceTotal) );
//        device.setFanStatus(funStatus);
//        //设备仓格反馈信息
//        JSONArray array=JSONArray.parseArray(json.getString("list"));
//
//        if(!CollectionUtils.isEmpty(array)){
//            List<String> list=array.toJavaList(String.class);
//            for(String str:list) {
//               // String caseJson = array.getJSONObject(i).getString("data");
//                SyncCaseModel caseModel=new SyncCaseModel();
//                String caseNum=str.substring(0,2);
//                String caseTemp=str.substring(2,5);//仓格温度
//                String hasElectrify=str.substring(5,7);//通电状态
//                String openStatus=str.substring(7,9);//箱门开启状态
//                String heatStatus=str.substring(9,11);//加热状态
//                String fanStatus=str.substring(11,13);//风扇状态
//                String solenoidStatus=str.substring(13,15);//电磁阀状态
//                String aerosolStatus=str.substring(15,17);//气溶胶状态
//                caseModel.setCaseNum(caseNum);
//                caseModel.setCaseTemp(new BigDecimal(caseTemp));
//                caseModel.setHasElectrify(hasElectrify.equals("01")?"TRUE":"FALSE");
//                caseModel.setOpenStatus(openStatus.equals("01")?"OPEN":"CLOSE");
//                caseModel.setHeatStatus(heatStatus.equals("01")?"TRUE":"FALSE");
//                caseModel.setFanStatus(fanStatus.equals("01")?"TRUE":"FALSE");
//                caseModel.setSolenoidStatus(solenoidStatus.equals("01")?"OPEN":"CLOSE");
//                caseModel.setAerosolStatus(aerosolStatus.equals("01")?"OPEN":"CLOSE");
//                device.getList().add(caseModel);
//            }
//        }
//        return device;
//    }
//}
